There is a storage device which conforms to a so-called multipath connection, that is, the device is connected to a host device through a plurality of communication routes (paths).
Recently, a multipath management is known in which Target Port Group Support (TPGS) is used so as to select an optimum path in the multipath connection.
FIG. 7 and FIG. 8 illustrate a path management method of a related art using TPGS.
In the multipath management using TPGS, a REPORT TARGET PORT GROUPS command is issued to the storage device from a multipath driver of the host device through an arbitrary path.
When the storage device receives the REPORT TARGET PORT GROUPS command, the storage device reports appropriate path information by setting, as a recommended (optimized) path, a host port of a controller (CM: controller module) in charge of a logical volume.
In an example illustrated in FIG. 7, a controller A is in charge of a logical volume VA1, and a physical volume A connected to the controller A is used as a physical region corresponding to the logical volume VA1.
When the host device issues a REPORT TARGET PORT GROUPS command to the controller A, the controller A responds “Active/Optimized” as an access state of a port included therein.
In regard to a port of a controller B which is not in charge of the logical volume VA1, for example, “Active/Non-optimized” is responded as an access state thereof. The host device selects an active path on the basis of the responded information.
Recently, in order to reduce a storage region and management costs, a storage device has been adopted in which a thin provisioning function is added to a redundant array of inexpensive disks (RAID) technology. The thin provisioning function is a technology for providing a capacity more than a physical volume capacity to a server in a storage system or a function for virtualizing a volume capacity used by a high-level device such as a server.
In TPGS, path information is managed for each logical volume. For this reason, TPGS is not used in a case, such as the thin provisioning volume, in which the controllers in charge of respective logical blocks of the logical volume are different.
In an example illustrated in FIG. 8, a logical volume VA2 as a thin provisioning volume is illustrated. A physical region of the logical volume VA2 is divided into a physical volume A connected to the controller A and a physical volume B connected to the controller B. That is, a part (physical block b1) of the physical region corresponding to the logical volume VA2 is present in the physical volume A connected to the controller A. The other part thereof (physical block b2) is present in the physical volume B connected to the controller B.
In TPGS in a case of the logical volume VA2 having such a configuration, when notifying of a recommended host access path for each logical volume, data in a block of which a controller in charge is different from the controller in charge of the logical volume has to be transferred between the controllers.
In the example of FIG. 8, transfer of data of the physical block b2 in the physical volume B is performed from the controller B to the controller A. Hereinafter, performing such transfer of data between the controllers is referred to as cross access.
Such a cross access causes a command response to be delayed and deterioration of the performance of a host access.
Here, as a method for suppressing such deterioration of the performance due to cross access, a referral specification is known.
FIG. 9 illustrates the referral specification.
In the referral specification, a REPORT REFERRALS command is used as well as a REPORT TARGET PORT GROUPS command described above. That is, the multipath driver of the host device issues a REPORT REFERRALS command to the storage device.
The storage device responds recommended path information for each block group (chunk) with respect to the received REPORT REFERRALS command. The chunk is a group of a plurality of blocks, and is a unit for controlling the blocks in block management.
The multipath driver in the host device manages the path information of each chunk and selects an access path for each chunk. Hereinafter, path information of a chunk may also be referred to as a chunk, for the sake of simplicity.
The host device stores a set of path information, which is acquired for each chunk by issuing a REPORT REFERRALS command, as path management information (a path information cache) in a memory.
Accordingly, a path through which an input/output (IO) command to be subsequently issued for the same chunk may be selected with reference to the path information cache without issuing a REPORT REFERRALS command.
Related techniques are disclosed in, for example, Japanese Laid-open Patent Publication No. 2005-321959 and Japanese Laid-open Patent Publication No. 2000-298555.
In such a storage system of the related art, it may be considered that the data in the storage device is divided into chunks more than a maximum number of path information to be held in a memory assigned as the path information cache.
When the data in the storage device is divided into chunks more than a maximum number of path information to be held in a memory assigned as the path information cache, chunk information for the entire storage device is not held in the path information cache so that, in the path information cache, old path information or path information less frequently used is overwritten with new path information.
Therefore, so as to issue an IO command for a chunk when path information thereof is deleted from the path information cache, a REPORT REFERRALS command is issued again, the path information is acquired again, and thereafter, the IO command is issued.
Specifically, to issue an IO command for a chunk when path information thereof is deleted from the path information cache, a multipath driver of a host device performs processing of (i) to (iv) described below.
(i) searching the path information cache for path information of a chunk for which the IO command is to be issued
(ii) issuing a REPORT REFERRALS command to the storage device because path information of the chunk is not present in the path information cache
(iii) selecting a path on the basis of information responded from the storage device in response to the REPORT REFERRALS command
(iv) issuing the IO command
As described above, to issue an IO command for a chunk when path information thereof is deleted from the path information cache, particularly, the processing of (ii) and (iii) are performed, and thus it takes a time for issuing the IO command since a REPORT REFERRALS command is issued.
Even though the referral specification is introduced to suppress an IO delay due to the cross access in the related art, there is a problem that the IO delay gets worse when “a time desired for a REPORT REFERRALS” becomes longer than “a delay time due to the cross access”.